// pages/search/index.js

/**
 * 1  输入框输入内容的时候进行商品搜索 
 * 2  校验输入框的输入的值   
 * 3  判断输入框的值有没有值 如果没有值  那么隐藏取消按钮  并且下面搜索的内容也清空  
 * 4  点击取消按钮可以清空输入框的内容以及下面搜索后的内容 
 * 
 * 
 * 节流与防抖
 * 节流   一般是指我们循环  减少循环的次数 最大提高性能  
 * 防抖   一般减少请求    主要针对定时器 
 * 
 */


// 引入 我们封装的函数 
import { request } from '../../request/index.js'

import regeneratorRuntime from '../../lib/runtime/runtime';
Page({

  /**
   * 页面的初始数据
   */
  data: {

    query: '',
    searchList:[],
    isShow:false,//定义初始化按钮状态
    inputVal:''//定义输入框初始数据

  },
  conutTimeId:-1,  //初始定时器标识符

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
   

  },

  //定义搜索方法 
  handlerInput(e) {
    console.log(e.detail.value)
    let query = e.detail.value
    if(!query.trim()) { //没有值那么就不执行发送请求
      this.setData({
        isShow:false,
        searchList:[]
      })
      return 
    }

    // 调用获取数据 

  clearTimeout(this.conutTimeId)
  this.conutTimeId=  setTimeout(()=>{
      this.getSearchData(query)
    },1000)
  },
  //定义获取请求数据的方法 
  async  getSearchData(query) {
    let res = await request({ url: '/goods/qsearch', data: { query } })
    console.log(res)
    this.setData({
      searchList:res,
      isShow:true
    })

  },
  //给按钮绑定点击事件 
  handlerTap() {
    this.setData({
      searchList:[],
      inputVal:'',
      isShow:false

    })
  
  }



})